﻿using System;
using System.Collections.Generic;
using System.Text;

namespace CeA.Reports.Atendimento.DataAccess.DTO {
    [Serializable]
    public enum TipoDia {
        Pico,
        Vale,
        Normal
    }

    [Serializable]
    public class DiaPicoDTO {
        private int m_id;
        private int     m_dia;
        private int     m_mes;
        private int     m_ano;
        private TipoDia m_tipoDia;
        private string  m_tipoDiaLiteral;

        private TrilhaAuditoriaDTO m_trilhaAuditoria;

        public DiaPicoDTO() {
            m_trilhaAuditoria = new TrilhaAuditoriaDTO();
        }

        public int Id {
            get { return m_id; }
            set { m_id = value; }
        }

        public int Dia {
            get { return m_dia; }
            set { m_dia = value; }
        }

        public int Mes {
            get { return m_mes; }
            set { m_mes = value; }
        }

        public int Ano {
            get { return m_ano; }
            set { m_ano = value; }
        }

        public TipoDia TipoDia {
            get { return m_tipoDia; }
            set {
                m_tipoDia = value;
                switch (m_tipoDia) {
                    case  TipoDia.Vale:
                        m_tipoDiaLiteral = "V";
                        break;
                    case TipoDia.Pico:
                        m_tipoDiaLiteral = "P";
                        break;
                    default:
                        m_tipoDiaLiteral = "N";
                        break;
                }
            }
        }

        public string TipoDiaLiteral {
            get { return m_tipoDiaLiteral; }
            set { 
                m_tipoDiaLiteral = value;
                switch (m_tipoDiaLiteral) {
                    case "V": 
                        m_tipoDia = TipoDia.Vale;
                        break;
                    case "P": 
                        m_tipoDia = TipoDia.Pico;
                        break;
                    default: 
                        m_tipoDia = TipoDia.Normal;
                        break;
                }
            }
        }

        public TrilhaAuditoriaDTO TrilhaAuditoria {
            get { return m_trilhaAuditoria; }
            set { m_trilhaAuditoria = value; }
        }

        public override string ToString() {
            StringBuilder str = new StringBuilder();

            str.AppendFormat("{[dia: {0}, ", m_dia + '/' + m_mes + '/' + m_ano);
            str.AppendFormat(" m_tipoDia:{0}]}", m_tipoDia);

            return str.ToString();
        }
    }
}
